iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
0
IoT

從開源kubernetes雲端運算到kubeedge雲邊協同系列 第 7

Day 7: KubeEdge 元件: Edge(II)

  • 分享至 

  • xImage
  •  

今天接著說明其他Edge端元件。

Meta Manager

MetaManager負責處理EdgeD與EdgeHub之間的訊息傳遞,並且負責邊緣端輕量級資料庫(SQLite)的資料讀寫。

  • 物件的新增/刪除/更新
    接收到對物件動作的訊息時,MetaManager都會一併更新資料庫資訊,當雲端與邊緣端斷線時仍能依照資料庫中儲存的物件狀態維持原本的服務。
  • 請求secret/Configmap
    收到這類請求訊息時,會先檢查本地端資料庫有沒有資料,如果沒有會再透過Edgehub向雲端請求;得到資料後先存一份在本地資料庫再發送給edgeD,下次遇到相同請求時就可以直接從本地端資料庫取得。
  • 節點連線訊息(NodeConnection Operation)
    透過edgehub取得與雲端節點的連線狀態,可以用作其他用途例如向雲端節點請求資料時。
  • 取得Pod運行狀態(MetaSync Operation)
    定期取得Pod的運行狀態,預設為60秒,可在設定檔中更改。

DeviceTwin

負責邊緣端與邊緣端裝置間的事情,這裡讓我們回顧一下架構圖。

從架構圖中可以發現,從EdgeHub下來後會是MetaManager與DeviceTwin並列的單元,這裡我把他解讀成,如果是跟虛擬資源有關的物件(像是Pod、deployment、secret、configmap等等)沒有實體的物件便是交由MetaManager處理;反之DeviceTwin處理的是與實體物件有關的操作,實體指的是與"實體的裝置"溝通有關,像是圖下半部MQTT Broker後面接的那些裝置。之前實測官方Github提供與裝置連接有關的範例時,不知道為甚麼感測器的訊息卡在邊緣端無法上傳至雲端,所以找時間會再研究看看問題是不是跟這個元件有關。

EventBus

負責MQTT主題的傳送與訂閱。
預設會訂閱以下主題:

- $hw/events/upload/#
- SYS/dis/upload_records
- SYS/dis/upload_records/+
- $hw/event/node/+/membership/get
- $hw/event/node/+/membership/get/+
- $hw/events/device/+/state/update
- $hw/events/device/+/state/update/+
- $hw/event/device/+/twin/+

簡單來說只要收到這些主題的發布就會做出對應的動作。例如發佈一個主題$hw/events/upload/#就會將訊息上傳,但#要符合當前主題的樹狀結構(包含子集合)。之前曾經試過發佈一個"$hw/events/upload/test"的主題,但是test沒有符合任何子集合所以訊息沒有上傳上去。
資料上傳範例(圖取自官方文件)


上一篇
Day 6: KubeEdge 元件:Edge(I)
下一篇
Day 8: KubeEdge安裝
系列文
從開源kubernetes雲端運算到kubeedge雲邊協同30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言